Dieser Text beschreibt Object Pascal. Der untere Text beinhaltet die Object Pascal Beschreibung. Soweit es sich um ein definierbares Objekt handelt, sollte hier eine Object Pascal Definition vorhanden sein. Sollte eine Definition von Object Pascal fehlen, kann diese von Ihnen verfaßt werden. Wir sind bestrebt die Beschreibung von Object Pascal möglichst ausführlich zu halten.
Jeder Text bei Know-Library, sowie ein Teil davon (Definition, Beschreibung etc.), außer Bücher Beschreibungen kann bearbeitet werden. Falls die Beschreibung auf dieser Seite nicht korrekt ist klicken Sie auf 'Beschreibung editieren' um den Text zu korrigieren bzw. neuen einzufügen. Weitere Informationen und Bücher zum Thema Object Pascal Beschreibung , so wie Link zum Forum finden Sie weiter unten. Eine Übersicht der Texte, die das Thema Object Pascal beschreiben finden Sie auf der Seite alle Artikel über Object Pascal. Fragen zu dem Thema Object Pascal können im Forum gestellt werden. Klicken Sie hier um zu dem Forum zu wechseln.
Object Pascal ArtikelObject Pascal, auch bekannt als Delphi, ist eine von der Firma Borland entwickelte objektorientierte Erweiterung der Programmiersprache Pascal.
Zuerst eingeführt wurde sie mit Delphi, inzwischen ist sie mit Kylix auch für Linux verfügbar. Auch von Drittanbietern wurde diese Sprache eine Zeit lang angeboten, so von Speedsoft, einer deutschen Firma, unter dem Namen Speed Pascal bzw. Sibyl, als auch von der britischen Firma fPrint UK Ltd. unter dem Namen Virtual Pascal. Beide wurden ursprünglich für OS/2 entwickelt und später nach Windows und Linux portiert. Die Entwicklung von Sibyl wurde anscheinend eingestellt, Virtual Pascal ist inzwischen als Freeware erhältlich. Daneben gibt es noch das ebenfalls kostenlose FreePascal, welches unter der GPL steht und mit Lazarus als RAD-IDE ein freies Gegenstueck zu Borlands Implementierungen bietet.
Object Pascal ist nicht die erste objektorientierte Erweiterung von Pascal. Borland hatte bereits bei Version 5.5 von Turbo Pascal ein Objektmodell eingeführt, welches interessanterweise von den Delphi Compilern bis Version 7.0 stets noch unterstützt wird, wenn man auch nach einer Dokumentation vergeblich sucht. (Delphi 8 für .NET unterstützt sie nicht mehr.)
Object Pascal ist die Grundlage der visuellen Klassenbibliothek Visual Component Library (VCL), auf der Delphi basiert, sowie der neueren "Component Library for Cross Platform" (CLX), auf der Kylix basiert. Beide Bibliotheken sind stark miteinander verwandt, und es ist häufig einfach, eine für die VCL geschriebene Komponente nach CLX zu portieren. Auch das Handling von Variablen unterscheided sich in Kylix und Delphi.
Ein Unterschied zu z.B. C++ ist, dass es nicht möglich ist Objekte auf dem Stack anzulegen, d.h. alle Objekte werden auf dem Heap angelegt (mit Ausnahme der alten Objekte aus Turbo Pascal, die auch ca. eingeschränkt genutzt werden können). Viele der Elemente und Ideen von Object Pascal sind in die neue Programmiersprache C# und das Microsoft .NET Framework übernommen worden. Einer der Gründe ist, dass Anders Heijlsberg, vormals Mitentwickler von Delphi bei Borland, zu Microsoft wechselte und maßgeblich an der Entwicklung von C# beteiligt war.
Beispiel einer Klassen-Deklaration |
type
TCommonObject = class
private
FSomeCommonValue: integer;
protected
function GetSomeCommonValue: integer; virtual; abstract;
published
property SomeCommonProperty: integer read GetSomeCommonValue;
end;
TMyObject = class(TCommonObject)
private
FSomePrivateField: integer;
protected
function GetSomeCommonValue: integer; override;
procedure SomeProtectedMethod(Param1: integer; const Param2: string; out OutParam: string); virtual;
procedure SetSomeOtherProperty(Value: integer);
function GetSomeOtherProperty: integer;
public
constructor Create;
destructor Destroy; override;
procedure SomePublicMethod;
published
property SomePublishedProperty: integer read FSomePrivateField; // readonly
property SomeOtherProperty: integer read GetSomeOtherProperty write SetSomeOtherProperty;
end;
Dieses Beispiel definiert die zwei Klassen TCommonObject und TMyObject. TCommonObject beschreibt eine abstrakte Klasse, zu deren Entwurfszeit noch nichts über die konkrete Implementierung der Methode GetSomeCommonValue bekannt ist. Jedoch kann es für die weitere Verarbeitung verschiedener Nachfahren von TCommonObject zwingend erforderlich sein, dass diese Methode vorhanden ist. TCommonObject enthält also all diejenigen Methoden und Merkmale, die allen Nachfahren gemein ist.
Hier in dem Beispiel wird GetSomeCommonValue erst in der Klasse TMyObject, die sämtliche Methoden und Merkmale von TCommonObject erbt, konkret implementiert.
Wie in dem Beispiel zu erkennen, bestehen Klassen in Object Pascal aus höchstens vier Sichtbarkeitsbereichen, die man auch Sichtbarkeitsattribute bezeichnet: private, protected, public und published. Sämtliche zu private gehörenden Elemente sind ca. innerhalb des Objektes sichtbar. Selbst in direkten Nachfahren hat man keinen Zugriff auf diesen Bereich. protected bestimmt ebenfalls von außen nicht sichtbare Elemente, auf die man jedoch in Nachfahren zugreifen kann. Alles was in dem Bereich public definiert wird, unterliegt keiner Beschränkung. Hinzu kommt speziell in Delphi das published Attribut. published steuert die Sichtbarkeit in dem Object Inspector und bewirkt weitere Informationen für RTTI.
Die Sichtbarkeit kann in Nachfahren durch Redeklaration erhöht, allerdings nicht verringert werden.
Properties dienen zu dem Information hiding , indem ein direkter Zugriff auf die Variable verhindert wird und die Methode entscheiden kann, welchen Wert sie beim Lesen herausgibt und beim Ändern eines Wertes akzeptiert, was einen ADT (abstract data type) auszeichnet. Wird beispielsweise wie bei property SomePublishedProperty keine write-Methode angegeben, so handelt es sich um eine read-only Variable.
Buch-Tipp: Das Delphi-Projekt. das kann man am Stück lesen Frey versteht sich wie kaum ein anderer darin, die komplexen Zusammenhänge der Finanzwelt spannend und leicht verständlich zu vermitteln. Die präzise beschriebenen Charaktere fesseln den Leser schnell und man mag den Thriller nicht mehr aus der Hand legen. . . . |
Die dazugehörige Implemementation |
constructor TMyObject.Create;
// legt eine Objectinstanz an
begin
inherited;
// Konstruktor der Oberklasse rufen
fSomePrivateField := 42;
// privates Feld mit 42 initialisieren
end;
destructor TMyObject.Destroy;
begin
inherited;
// Destruktor der Oberklasse aufrufen
end;
function TMyObject.GetSomeCommonValue: integer;
begin
Result := FSomeCommonValue*2
end;
procedure TMyObject.SomeProtectedMethod(Param1: integer; const Param2: string; out OutParam: string);
var
i: integer;
// Deklaration lokaler Variablen
begin
OutParam := ;
// Ausgabeparameter initialisieren
for i:=1 to Param1 do
OutParam := OutParam + Param2;
// Ausgabeparameter mit dem Eingabeparameter Param1-mal konkatenieren
end;
procedure TMyObject.SomePublicMethod;
begin
Inc(fSomePrivateField);
// privates Feld hochzählen
end;
procedure SetSomeOtherProperty(Value: integer);
begin
fSomePrivateField := Value * 5;
end;
function GetSomeOtherProperty: integer;
begin
Result := fSomePrivateField div 5;
end;
Buch-Tipp: Das Handwerk der Freiheit. Über die Entdeckung des eigenen Willens Labyrinth und Ariadnefaden in dem Wechselspiel Sie sind ein freier Mensch! Sie entscheiden, ob Sie diese Rezension lesen und sich auf eines der bemerkenswertesten Themen der Philosophie einlassen. Sie werden einen brillanten Bieri erleben.
"Frei ist, was ca. den Gesetzen seines eigenen Wesens gemäß handelt und von nichts anderem weder in noch außer... |
|
Buch-Tipp: Das Handwerk der Freiheit. Über die Entdeckung des eigenen Willens. Labyrinth und Ariadnefaden in dem Wechselspiel Sie sind ein freier Mensch! Sie entscheiden, ob Sie diese Rezension lesen und sich auf eines der bemerkenswertesten Themen der Philosophie einlassen. Sie werden einen brillanten Bieri erleben.
"Frei ist, was ca. den Gesetzen seines eigenen Wesens gemäß handelt und von nichts anderem weder in noch außer... |
|
| Name | Größe | Wertebereich | Beschreibung
|
| ByteBool / Boolean | 1 Byte | true oder false | Boolscher Wert
|
| WordBool | 2 Byte | true oder false | Boolscher Wert
|
| LongBool | 4 Byte | true oder false | Boolscher Wert
|
| Byte | 1 Byte | 0 bis 255 | vorzeichenlose 8 bit-Ganzzahl
|
| Word | 2 Byte | 0 bis 65536 | vorzeichenlose 16 bit-Ganzzahl
|
| Cardinal | 4 Byte | 0 bis 4.294.967.295 | vorzeichenlose 32 bit-Ganzzahl
|
| ShortInt | 1 Byte | -128 bis 127 | vorzeichenbehaftete 8 bit-Ganzzahl
|
| SmallInt | 2 Byte | -32.768 bis 32.767 | vorzeichenbehaftete 16 bit-Ganzzahl
|
| LongInt | 4 Byte | -231 bis 231-1 | vorzeichenbehaftete 32 bit-Ganzzahl
|
| Int64 | 8 Byte | -263 bis 263-1 | vorzeichenbehaftete 64 bit-Ganzzahl
|
| Real48 | 6 Byte | 2,9x10-39 bis 1,7x1038 | 48 bit-Gleitkommazahl
|
| Single | 4 Byte | 1,5x10-45 bis 3,4x1038 | 32 bit-Gleitkommazahl (IEEE 754-float)
|
| Double | 8 Byte | 5,0x10-324 bis 1,7x10308 | 64 bit-Gleitkommazahl (IEEE 754-double)
|
| Extended | 10 Byte | 3,6x10-4951 bis 1,1x104932 | 80 bit-Gleitkommazahl
|
| Comp | 8 Byte | -263 bis 263-1 | vorzeichenbehaftete 64 bit-Ganzzahl, mit der über die FPU gerechnet wird
|
| Currency | 8 Byte | -922.337.203.685.477,5808 bis 922.337.203.685.477,5807 | vorzeichenbehaftete 64 bit-Festkommazahl
|
| Char | 1 Byte | #0 bis #255 | 8 bit-Zeichen, z.B. ASCII-/ANSI-Zeichen
|
| WideChar | 2 Byte | #0 bis #65535 | 16 bit-Zeichen, z.B. Unicode-Zeichen
|
| ShortString | bis 256 Byte
| Aneinanderrehung von bis zu 255 Chars
|
| AnsiString | bis 2 GByte
| Aneinanderreihung von bis zu 231 Chars
|
| WideString | bis 2 GByte
| Aneinanderreihung von bis zu 230 WideChars
|
Der Datentyp Real entspricht in Delphi standardmässig dem Double. Zur Rückwärtskompatibilität kann man ihm mit dem Compilerschalter {$REALCOMPATIBILITY ON} dem Real48 gleichsetzen.
Der Datentyp Integer hängt von der jeweiligen Pascal-Implementation ab. In 16bit-Implementationen (z.B. Turbo Pascal) entsprach er einem SmallInt, in 32bit-Implementationen einem LongInt und in 64bit-Implementationen wird er einem Int64 entsprechen.
Der Datentyp String entspricht standardmäßig einem AnsiString. Mit {$LONGSTRINGS OFF} entspricht er zur Rückwärtskompatibilität einem ShortString.
Buch-Tipp: Das kleine Handbuch des Grüntees Fabelhafte 3. Auflage des Einstiegsbuches für Teeliebhaber Auch die dritte Auflage, in erweiterter Form, bringt dem Leser in schön formulierten Kapiteln die Welt des Tees nahe und lädt zu dem Verweilen bei einer guten Tasse Sencha oder Lung Ching ein. Darüber hinaus geht der junge Tee-experte Pascal Debra auch auf die Philosophie des Teetrinkens... |
| |
and array as asm begin case class const constructor destructor dispinterface div do downto else end except exports file finalization finally for function goto if implementation in inherited initialization inline interface is label library mod nil not object of or out packed procedure program property raise record repeat resourcestring set shl shr string then threadvar to try type unit until uses var while with xor
Buch-Tipp: Delphi Sogar ich habe es begriffen! Habe mich mit dem Buch auf eine Delphi-Klausur in dem Studium vorbereitet, innerhalb von einer Woche. Vorher hatte ich so gut wie keine Ahnung von Delphi - aber in diesem Buch wurde wirklich ALLES von Anfang an erklärt, es wurde keinerlei Wissen vorausgesetzt. In diesem Buch bin ich nicht daran gescheitert, daß mir irgendwelche... |
| |
Direktiven sind Symbole die ca. in bestimmten Kontexten reserviert sind, sonst aber als Namen für Variablen, Funktionen, usw. benutzt werden können.
absolute abstract assembler at automated cdecl default deprecated dispip dynamic export far implements index library near nodefault on overload override pascal platform private protected public published read register reintroduce safecall stdcall stored virtual write
Buch-Tipp: Delphi für Einsteiger. Programmieren leicht gemacht Um ausführliche Informationen zum Buch " Delphi für Einsteiger. Programmieren leicht gemacht" zu bekommen klicken Sie bitte auf den Hyperlink oberhalb von diesem Text. Sie werden zum entsprechenden Buch auf der Händlerseite weiter geleitet. |
Weiteres zu dem Artikel Object Pascal | | Andere Leser interessierten sich auch für folgende Beschreibungen: | Borland, Implementierung, Linux, Namen, Symbole, Turbo | | Schnellzugrif auf verwandte Texte: | | | NEU! Frage im Forum zum Thema: | | Wenn die Beschreibung 'Object Pascal' Ihrer Meinung nach nicht korrekt ist oder in aktueller Version Fehler enthalten sind oder es fehlt die Object Pascal Definition, dann klicken Sie bitte auf "Beschreibung bearbeiten" und schreiben Sie die Eigene Version des Textes. Die Änderungen in der Beschreibung werden sofort aktiv und für alle sichtbar. Ein Administrator wird Ihre Version der Beschreibung und Definition von 'Object Pascal' nachher prüfen. Bitte achten Sie auf die Urheberrechte (Copyright). Wir sind für die besseren Beschreibung von 'Object Pascal' und 'Object Pascal' Definition sehr dankbar.
Alle Tipps zu den Bücher auf dieser Seite wurden automatisch generiert. D.h. die Bücher wurden aus einer Datenbank von dem Computer ausgesucht. Deshalb kann es vorkommen, dass vorgeschlagene Bücher nicht ganz der 'Object Pascal' Beschreibung entsprechen.
|
|
|